The present invention is in the field of computer performance monitoring equipment.
Computer performance monitoring has become an established industry within the much larger data processing industry. Performance monitoring is necessitated by the high costs of equipment, the large variety of hardware and software, and the need to optimize the utilization of such equipment. Broadly, monitoring equipment provides the user with information concerning the events taking place in computer equipment, when such events take place, and the frequency of such events. Both hardware and software and combination hardware/software monitors are presently in use. The hardware picks off signals from CPUs or peripheral devices, notes the time of occurrence of such signals, stores the signals and/or the time and/or the fact of the signal occurrence, and may provide a visual output of such information to the user. Software is used principally to format the collected data in useful form for the computer user.
The standard monitors select the signals for monitoring by attaching a probe to a line inside the CPU or peripheral device carrying the signals to be measured. The probes consist of differential amplifiers which present a high impedance to the line to which they are attached. Two significant problems with this standard method are lack of flexibility and a substantial increase in probes necessary for collecting a large variety of information. For example, once the probes are attached, the signals measured are determined. To measure different signals, the probes have to be removed and attached to other lines. Also, if it is desired to measure activity in a CPU and in a plurality of peripheral devices and collect such information, a substantial number of probes would be required and it would be necessary to provide long cables from those probes attached to distant peripheral units.
Prior art monitors are the subject of several patents. Taylor, U.S. Pat. No. 3,399,298, provides direct connection to specific elements of the host computer to be monitored. The monitor counts standard clock pulses to provide an indication of a time period during which the specific element is being checked. During that time period, a second counter is provided with the same clock pulses but only during the moments while the element being monitored is active. Thus, the ratio of the two counts in the two counters indicates an efficiency measurement for the particular device being monitored.
A patent to Martin, U.S. Pat. No. 3,906,454, is directed toward a monitor for a host computer. According to the Martin patent, the host computer must be specially programmed or arranged to provide signals that indicate to the monitor that certain other signals should be accumulated or otherwise processed for monitoring.
The Deese U.S. Pat. No. 3,818,458 departs from the technique for counting or timing individual signals received from various points in a computer, but does so by only monitoring certain specific computer status indications and recording the time at which there is a change in one of these status indications.
Other standard monitoring systems or apparatus are taught by Freeman, et al., U.S. Pat. No. 3,763,474, Murphy, U.S. Pat. No. 3,540,003, Murphy, U.S. Pat. No. 3,522,597, Rash, et al., U.S. Pat. No. 3,588,837, and Kandiew, U.S. Pat. No. 3,692,989.
The Furtman et al patent, mentioned above, describes a monitor which connects to the CPU channel in the same manner as a peripheral unit and receives all information, commands, etc. on the channel. The system is capable of selecting the type and quantity of information to be collected from the channel based on the peripheral which is communicating with the CPU. The monitor consists essentially of a channel interface module, a data collection module, and microprocessors and memories. The system monitors combinations of signals and sequences of signals and generates event codes which identify the combinations and sequences, by reducing the data picked off the channel in accordance with programmable instructions for each peripheral device on the channel, and collects packets of information in dependence upon the event code generated.
While the system of the Furtman et al patent satisfies the objects disclosed therein, it has been observed in practice that certain aspects of the system resulted in the collection of too much information in the hardware FIFO registers, with the consequent loss of some desirable information due to the FIFO being full. Other drawbacks were the dependence upon the microcomputer associated with the hardware for the performance of too many calculations.
One host sequence which generates a lot of signals on the channel is a search sequence. That sequence is initiated by the host when it is looking for certain information on disks or elsewhere. The host places a search command on the channel with accompanying other information in the same manner that it generates other commands. However, in the case of a search it is not unusual to have the host put one to two hundred search commands on the channel in sequence in rapid order. The system does this until it finds what it is searching for or it gives up. In the prior system, each search command plus other relevant information associated with each command, i.e., pseudo address, time stamp, etc., was entered into the FIFO for subsequent transfer to the microcomputer. Unfortunately, all that information often filled the FIFO before it was emptied by transfer to the microcomputer. Thus, other desirable measurement data appearing on the channel would not get into the FIFO and would be lost.
Additionally, in the Furtman et al system, provision was made for rejecting all information or certain categories of information by peripheral device only. However in some desirable measurement operations there are certain types of commands which are simply of no interest irrespective of the peripheral device to which the command is given. Thus in the Furtman et al device, when the user was implementing such operations, the monitoring hardware would end up collecting a lot of unwanted information, thereby using FIFO space, and that information had to be eliminated in the microprocessor.
Another drawback was in the method contemplated for obtaining utilization information. Utilization information, also known as percent activity, is a measure of the operating time of a certain element or device as a percent of the total on-time of the system. In the Furtman et al system it was intended that utilization information would be determined entirely as a software function of the microprocessor based on the time stamps which accompanied every packet of information in the FIFO. However, due to the large number of peripheral devices connected to the channel, calculating utilization information for all or selected devices turned out to require too much computing power.